Copyright(C) 1994,1995,1996,1997 Terumasa KODAKA , Takeshi KONO
■CPUが使用するI/O
対象 80286搭載機種,V33A搭載機種(PC-98DO+),V50,V50HL搭載機種
解説 o 80286では数値演算コプロセッサとの通信のためにI/O 00F8〜00FChを使用
する。このため、ユーザーはこの範囲のI/Oアドレスを使用することはでき
ない。
o V33Aには最大16MBのアドレス空間が使用できる拡張モードのためのレジスタ
がCPUの内部にある。ユーザーはこのI/Oを操作してはいけない。
o V50,V50HLはCPUの内部にいくつかの周辺チップを取り込んでいる。このため
これらを制御するためのI/Oアドレスのほかに、これらの周辺回路のさまざま
なコンフィギュレーションを行うためのレジスタも存在している。ユーザー
はこのI/Oを操作してはいけない。
I/O 00F8〜00FCh(WORD)
名前 NPX(80287)通信用(intel RESERVE)
対象 80286 CPU搭載機
チップ 80287
機能
-----------+----+------------------------------------------------------
I/Oアドレス|幅 |内容
-----------+----+------------------------------------------------------
00F8h |WORD|CPU←→NPX通信用
00FAh |WORD|CPU←→NPX通信用
00FCh |WORD|CPU←→NPX通信用
00FEh |WORD|リザーブ
-----------+----+------------------------------------------------------
解説 o 80286 CPUは、数値演算コプロセッサ80287との通信のためにI/O 00F8〜00FDhを
使用する。この範囲のI/Oを他のペリフェラルデバイスが使用することは
できない。
o 80386 CPUでは、数値演算コプロセッサ80387との通信のためにI/O 800000F8h
(32bit)とI/O 800000FCh(32bit)を使用する。なお、このI/Oアドレスは
コプロセッサ専用である。
関連
I/O FF00〜FF7Eh(WORD),FF80h(BYTE)
名前 V33A アドレス拡張制御用内部I/Oレジスタ
対象 V33A搭載機(PC-98DO+)
チップ V33A(μPD70136A)
機能
-----------+----+---+--------------------------------------------------
I/Oアドレス|幅 |R/W|内容
-----------+----+---+--------------------------------------------------
FF00〜FF7Eh|WORD|R/W|PGR1〜PGR64(ページレジスタ)
FF80h |BYTE| R |bit 0: XAM(拡張アドレスモードレジスタ)
| | | 1= 拡張アドレスモード(XAモード)
| | | 0= 通常アドレスモード(NAモード)
-----------+----+---+--------------------------------------------------
解説 o V33A CPUのアドレス空間拡張機能を制御するためのレジスタ。
関連
I/O FF00〜FFFFh(BYTE)
名前 V50,V50HLシステムI/O領域
対象 V50,V50HL搭載機
チップ V50(μPD70216),V50HL(μPD70216H)
機能
-----------+----+---+--------------------------------------------------
I/Oアドレス|幅 |R/W|内容
-----------+----+---+--------------------------------------------------
FF00〜FFDFh|BYTE| |予約
FFE0h |BYTE|R/W|バンク選択レジスタ *1
FFE1h |BYTE|R/W|バンクアドレスレジスタ *1
FFE2〜FFE8h|BYTE| |予約
FFE9h |BYTE|R/W|ボーレートカウンタ *1
FFEAh |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ3 *1
FFEBh |BYTE|R/W|ウェイトI/Oブロック設定レジスタ *1
FFECh |BYTE|R/W|ウェイトサブメモリブロック設定レジスタ *1
FFEDh |BYTE|R/W|拡張ウェイトブロック選択レジスタ *1
FFEE〜FFEFh|BYTE| |予約
FFF0h |BYTE|R/W|タイマクロック選択レジスタ
FFF1h |BYTE|R/W|スタンバイコントロールレジスタ *1
FFF2h |BYTE|R/W|リフレッシュコントロールレジスタ
FFF3h |BYTE| |予約
FFF4h |BYTE|R/W|プログラマブルウェイトメモリ領域設定レジスタ
FFF5h |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ1
FFF6h |BYTE|R/W|プログラマブルウェイトサイクル数設定レジスタ2
FFF7h |BYTE|R/W|システムコントロールレジスタ *1
FFF8h |BYTE|R/W|SCUロウアドレスレジスタ
FFF9h |BYTE|R/W|TCUロウアドレスレジスタ
FFFAh |BYTE|R/W|ICUロウアドレスレジスタ
FFFBh |BYTE|R/W|DMAUロウアドレスレジスタ
FFFCh |BYTE|R/W|オンチップペリフェラルハイアドレスレジスタ
FFFDh |BYTE|R/W|オンチップペリフェラルセレクションレジスタ
FFFEh |BYTE|R/W|オンチップペリフェラルコネクションレジスタ
FFFFh |BYTE| |予約
-----------+----+---+--------------------------------------------------
*1: V50(μPD70216)では予約
解説 o V50,V50HL CPU内蔵ペリフェラルを制御するためのレジスタ。
関連
■CPU周辺が使用するI/O
解説 o 80286以上のCPU搭載機では、CPUのリセットをおこなうためにI/Oポートを
使用する。CPUのリセット以外にも1MB以上のメモリ空間へのアクセスを
行うためにA20ラインの有効にする操作などもI/Oポートを使用して行われる。
-------------------------------------------------------------------------------
I/O 00F0h
名前 マシンステータス読み出し/CPUシャットダウン
対象 80286以上のCPUを搭載したマシン(ITF搭載機)
機能
[READ] マシン・ステータス読み出し
bit 7: 姉妹機判定■[PC-9801NA,NA/C]
1= PC-9801NA
0= PC-9801NA/C
bit 7: 姉妹機判定■[PC-9821modelS1,S2]
1= PC-9821modelS1
0= PC-9821modelS2
bit 7: 姉妹機判定■[PC-9821CemodelS1,S2]
1= PC-9821CemodelS1
0= PC-9821CemodelS2
bit 7: 姉妹機判定■[PC-9821Xt・Xa]
1= PC-9821Xt
0= PC-9821Xa
bit 7: CPU速度判定■[PC-9821Ap・As・Ae・Af]
1= CPU MODE is High/Low
0= CPU MODE is Middle
bit 6: ODPソケットステータス■[PC-9821Ts]
1= ODPあり
0= ODPなし
bit 6: 内蔵タイプ(SCSI)HDDステータス
■[PC-9801RA21・RS・DA・DS・DX・ES・FA・FS・FX
PC-9821初代・Ap・As・Ae・Ce・Af・Ap2・As2・An・Ap3・As3]
1= 内蔵55タイプHDDなし
0= 内蔵55タイプHDDあり
bit 5: 内蔵タイプ(SASI,IDE)HDDステータス
■[PC-9801RA21・RS・DA・DS・DX・ES・EX,PC-98DO+
98NOTE,PC-9821,PC-9801BA・BX・BA2・BS2・BX2・BA3・BX3・BX4]
1= 内蔵27タイプHDDなし
0= 内蔵27タイプHDDあり
bit 4: 不明
bit 3: 内部増設RAMアクセス
1= 標準内蔵または拡張スロットメモリ
0= 内部増設メモリ
* 直前のRAMアクセスが内部増設RAMかどうかを示す。
bit 2: リフレッシュモード
1= 通常リフレッシュ
0= 高速リフレッシュ
bit 1: CPUモード
1= V30
0= 80286/80386
* I/O 00F0h bit 0に設定された値を示す。
bit 0: 内部RAM/拡張スロットRAM判別
1= 内部メモリ
0= 拡張スロットメモリ
* 直前のRAMアクセスが内部RAMへのアクセスであったかどうかを
示す。
[WRITE] CPUシャットダウン
bit 7〜3: 未使用
bit 2: リフレッシュモード選択?
1= 通常リフレッシュ(V30選択時)
0= 高速リフレッシュ(80286/80386選択時)
bit 1: 不明
1= V30選択時
0= 80286/386選択時
bit 0: CPUモード選択
1= V30選択
0= 80286/386選択
* 出力する値によって80286(386)とV30の切り換えが行える。
そのときCPU(NDP)のリセット端子がアクティブに、A20はマスク
状態になる。ここで設定された値は、I/O 00F0h bit 1より読み
出される。
解説
関連 0000:0596h bit 0
I/O 00F0h
I/O 00F1h
名前 IDEポートF/Fリセット
Undocumented
対象 PC-9821Xa10・Xa9・Xa7・Xe10,PC-9801BX4
機能
[READ] なし
[WRITE]
bit 7〜0: 任意
開設 o プライマリとセカンダリ2つのIDEポートに、マスタ/スレーブでIDEデバイス
を接続できる機種で、それぞれのIDEポートにデバイスが接続されているか
どうか調べるのに用いられる。
o このポートに任意の値を書き込んだ後I/O 00F0hを2回連続して読み出しを
おこなったとき、1回目の読み出しでプライマリIDE、2回目の読みだしでセ
カンダリIDEの情報が同じbit 5から取得できる。
関連 I/O 00F0h bit 5
I/O 00F2h
名前 CPU A20マスク解除
対象 80286以上のCPU搭載機
機能
[READ]
bit 7〜2: 未使用
bit 1: 不明
bit 0: A20状態■[除くH98]
1= A20マスク状態
0= A20マスク解除状態
[WRITE] CPU A20マスク解除
解説 o 任意の値を出力するとCPUのアドレスバスA20のマスクが解除される。
A20をマスクするには00F6hか00F0hに出力する。
関連 I/O 8B1Eh bit 6
I/O 00F4h
名前 DMAモード選択
Undocumented
対象 PC-9801DA以降
機能
[READ] 不明
[WRITE]
bit 7〜0: DMA速度設定
00000100b= DMA速度互換
00000101b= DMA速度高速
解説 o DMAコントローラのクロックを選択する
関連 I/O 861Eh bit 4
I/O 00F6h
名前 A20ライン制御
対象 386以上のCPU搭載機
機能
[READ]
bit 7,6: 不明
bit 5: 不明
bit 4: 内蔵HDD DMAch設定■[PC-98RLを除く]
1= ch0
0= ch1
関連 I/O 7FDBh bit 4■[PC-98RL]
bit 3: 不明
bit 2: 不明
bit 1: NMI禁止/許可状態■[PC-H98を除く]
1= 許可
0= 禁止
bit 0: A20マスク状態
1= A20はマスクされている
0= A20はマスクされていない
[WRITE]
bit 7〜0: 各種設定
00000001b= 不明■[PC-9801NA]
0000001nb= CPUのアドレスバスA20のマスク制御■[XL^2以降の386機]
0(02h)= A20マスク解除
1(03h)= A20マスク設定
* OUT F6h,02h と OUT F2h,XXh の動作は同じ。
0n000100b= 内蔵SCSI I/Fスロットが使用するDMAチャネル指定
1(44h)= SCSI I/FスロットでDMA #1を使用
0(04h)= SCSI I/FスロットでDMA #0を使用
* システムセットアップメニューの設定を書き込む
0000010nb= 不明
1n100000b= 8x1Eh ソフトウェアディップスイッチ切り替え
1(E0h)= ディップスイッチ表バンク指定
0(A0h)= ディップスイッチ裏バンク指定
* I/O 841E〜8F1Ehのソフトウェアディップスイッチは、
1つのI/Oアドレスにそれぞれ裏表2組ずつ割り当てられ
ている。裏表の選択方法は機種によって異なるが、
I/O 00F6h - A0h,E0hを用いて選択する機種もある。
解説 u テクニカルデータブックに描かれている方法ではA20ラインのON/OFFが出
来ない。
関連 0000:0484h bit 7,6
I/O 00F0h
I/O 00F2h
I/O 861Eh bit 2
I/O 841E〜8F1Eh(表,裏)
I/O 0431h
名前 電源,LED制御等
Undocumented
対象 PC-H98
機能
[READ]
bit 7: 電源OFF禁止状態
1= 電源OFF禁止中
0= 電源OFF許可中
bit 6〜0: 不明
[WRITE]
bit 7,3: 電源制御
11b= 強制的に電源OFFする
10b= 電源SWによる電源OFF禁止
0xb= 電源SWによる電源OFF許可
bit 6〜4: 不明
bit 2: 本体HDDアクセスLED制御
1= 点灯
0= 消灯
bit 1: 不明
bit 0: 本体電源LED制御
1= 点灯
0= 消灯
解説 o 電源と本体LEDの制御を行う。
関連 INT 1Fh - Function 98h
I/O 0534h
名前 不明
Undocumented
対象 PC-9821Ap2・As2・Bp・Bs・Be・Bf・Cs2・Ce2・Ts,PC-9801BA2・BS2・BX2・BA3・BX3・BX4
機能
[READ/WRITE]
bit 7: CPU外部クロック■[PC-9821Bp・Bs・Be・Cs2・Ce2]
1= 33MHz
0= 25MHz
bit 6〜4: 未使用
bit 3: 不明
bit 2: テキストVRAMウェイト?
1= ウェイトなし
0= ウェイト挿入
bit 1: 不明
bit 0: MIDDLE,LOWモードフラグ
1= MIDDLE,LOWモード
0= HIGHモード
解説 o 詳細不明
I/O 9892h
名前 CPUウェイト調整
Undocumented
対象 PC-9801DA・DS・DX・FA・FS・FX・BA・BX・BA2・BS2・BX2・BA3・BX3
98NOTE(PC-9801N・NV・NL,PC-9821Np・Ns・Ne2・Nd・Es・Ld・Lt・Nf・Nm除く)
PC-H98, PC-9821
機能
[READ/WRITE]
bit 7〜4: 未使用
bit 3〜0: CPUウェイト値(下位4bit)
解説 o CPUの動作速度を128段階で設定する。0000000bのとき最高速。
o I/O 9894h bit 3が0のとき無効。
関連 I/O 9894h bit 3
I/O 9894h bit 2〜0
I/O 9894h
名前 CPUウェイト調整
Undocumented
対象 PC-9801DA・DS・DX・FA・FS・FX・BA・BX・BA2・BS2・BX2・BA3・BX3
98NOTE(PC-9801N・NV・NL,PC-9821Np・Ns・Ne2・Nd・Es・Ld・Lt・Nf・Nm除く)
PC-H98, PC-9821
機能
[READ/WRITE]
bit 7〜4: 未使用
bit 3: CPUウェイト有効
1= ウェイトを挿入する
0= ウェイトを挿入しない
bit 2〜0: CPUウェイト値(上位3bit)
解説 o CPUの動作速度を128段階で設定する。0000000bのとき最高速。
o bit 3が0のとき無効。
関連 I/O 9892h bit 4〜0
I/O 00F0h bit 0
I/O 9896h
名前 CPUキャッシュ制御
Undocumented
対象 PC-H98
機能
[READ] 不明
[WRITE]
bit 7〜0: キャッシュ制御
00h= キャッシュ有効
04h= キャッシュ有効
解説 o キャッシュを制御する。
o 詳細不明